package cn.bdqn.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * 文件上传工具类
 */
public class FileUpload {
    //时间格式转换
    SimpleDateFormat dateFormat = new SimpleDateFormat("/yyyy/MM/dd/");
    //文件存放路径

    private String filePath;


    public FileUpload(String filePath){
        //获取当前时间
        String now = dateFormat.format(new Date());
        this.filePath = filePath + now;
    }

    /**
     * 上传文件
     * @param realPath  绝对路径
     * @param file  文件对象
     * @return  返回文件所在相对路径
     * @throws IOException  文件创建失败
     */
    public String upload(String realPath,MultipartFile file) throws IOException {
        //检查文件路径和文件是否为空
        if (null == filePath || filePath.trim().length() == 0||null == file) {
            return null;
        }

        //检查文件存放路径是否存在
        File folder = new File(realPath+filePath);
        if (!folder.exists()) {
            folder.mkdirs();
        }

        //获取文件名
        String oldName = file.getOriginalFilename();
        //使用uuid加上文件后缀作为新文件名
        String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf("."));

        //获取文件相对路径
        String url = filePath+newName;

        //将文件移动到存放路径
        file.transferTo(new File(folder,newName));

        return url;
    }
}
